/////                    Fonction getUserLogin                            /////
function getUserLogin() {
	if (typeof (parent.document.getElementById('userinforow').innerText) !== 'undefined')
		return parent.document.getElementById('userinforow').innerText
				.match(/\[(.*)\]/)[1];
	return parent.document.getElementById('userinforow').childNodes[1].childNodes[1].firstChild.textContent
			.match(/\[(.*)\]/)[1];
}
// //////////////////////////////////////////////////////////////////////////////
// //////////////////////////////////////////////////////////////////////////////
// /// Fonction getUserOrga /////
// //////////////////////////////////////////////////////////////////////////////
// //////////////////////////////////////////////////////////////////////////////
function getUserOrga(PrenomNom) {
	var xmlhttp;
	var Orga = '';
	var getUrlUser = '';
	getUrlUser = '/Aciernet/InformationsUtilisateur.jsp?utilisateur='
			+ encodeURI(PrenomNom) + '&ipRequestCenter='
			+ encodeURI(window.location.hostname);
	getUrlUser = getUrlUser.replace(/%C2%A0/, '%20');
	if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
		xmlhttp = new XMLHttpRequest();
	} else {// code for IE6, IE5
		xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
	}
	xmlhttp.open("GET", getUrlUser, false);
	xmlhttp.send();
	xmlDoc = xmlhttp.responseXML;
	getUrlUser = '';
	if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
		var Orga = xmlDoc.getElementsByTagName("organisation")[0].textContent;
		if (typeof Orga === 'undefined')
			var Orga = xmlDoc.getElementsByTagName("organisation")[0].childNodes[0].nodeValue;
		// Orga = 'Developpement';
		// alert('Orga');
		// alert(Orga);
	} else {
		Orga = '#';
	}
	// alert("orga " + Orga);
	return Orga;
}
// variables globales utilisÃ©es plus tard dans des fonctions
var Organisation = '';
var externeOuNon = "";
// //////////////////////////////////////////////////////////////////////////////
// //////////////////////////////////////////////////////////////////////////////
// /// Fonction getServiceID /////
// //////////////////////////////////////////////////////////////////////////////
// //////////////////////////////////////////////////////////////////////////////
function getServiceID(servname) {
	var xmlhttp;
	getUrl = '/RequestCenter/nsapi/definition/servicedefs/name/'
			+ encodeURI(servname);
	getUrl = getUrl.replace(/%C2%A0/, '%20');
	if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
		xmlhttp = new XMLHttpRequest();
	} else {// code for IE6, IE5
		xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
	}
	xmlhttp.open("GET", getUrl, false);
	xmlhttp.send();
	xmlDoc = xmlhttp.responseXML;
	if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
		var servid = xmlDoc.getElementsByTagName("serviceId")[0].textContent;
		if (typeof servid === 'undefined')
			var servid = xmlDoc.getElementsByTagName("serviceId")[0].childNodes[0].nodeValue;
	} else {
		var servid = '#';
	}
	return servid;
}
// //////////////////////////////////////////////////////////////////////////////
// //////////////////////////////////////////////////////////////////////////////
// /// Fonction getIdModule (+set externeOuNon) /////
// //////////////////////////////////////////////////////////////////////////////
// //////////////////////////////////////////////////////////////////////////////
// Mettre une variable globale pou idModule permettrait de ne pas rentrer dans
// la fonction plusieurs fois
// On filtre sur le nom du module et de l'organisation
function getIdModule(NomModule, NomOrga) {
	// alert('dans la fonction getIdModule, Nom et orga:' + NomModule +
	// NomOrga);
	var idModule = '';
	var xmlhttp;
	// On ne peut pas mettre le nom de l'orga directement dans cet Url pour
	// filtrer,
	// l'api ne fonctionne pas avec les champs tout en majuscule, le filtrage
	// sur nom d'orga sera fait dans une boucle plus loin...
	getUrl = '/Aciernet/ListeModulesparOrga.jsp?Externe=oui&ipRequestCenter='
			+ encodeURI(window.location.hostname) + '&organisation='
			+ encodeURI(NomOrga); // /NomModule=' + NomModule;
	getUrl = getUrl.replace(/%C2%A0/, '%20');
	// alert('getUrl: ' + getUrl);
	if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
		xmlhttp = new XMLHttpRequest();
	} else {// code for IE6, IE5
		xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
	}
	xmlhttp.open("GET", getUrl, false);
	xmlhttp.send();
	xmlDoc = xmlhttp.responseXML;
	if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
		var x = xmlDoc.getElementsByTagName("Module");
		var idModuleTemp = '';
		var NomModuleTemp = '';
		// alert(x.length);
		for (i = 0; i < x.length; i++) {
			idModuleTemp = x[i].getElementsByTagName("idModule")[0].textContent;
			if (typeof idModuleTemp === 'undefined')
				idModuleTemp = x[i].getElementsByTagName("idModule")[0].childNodes[0].nodeValue;
			NomModuleTemp = x[i].getElementsByTagName("NomModule")[0].textContent;
			if (typeof NomModuleTemp === 'undefined')
				NomModuleTemp = x[i].getElementsByTagName("NomModule")[0].childNodes[0].nodeValue;
			if (NomModule == NomModuleTemp) {
				// alert('if idModuleTemp + ' + idModuleTemp);
				externeOuNon = x[i].getElementsByTagName("Externe")[0].textContent;
				if (typeof externeOuNon === 'undefined')
					externeOuNon = x[i].getElementsByTagName("Externe")[0].childNodes[0].nodeValue;
				idModule = idModuleTemp;
				return idModule;
			}
		}// fin de la boucle for
	}
	// alert("Le module sâ€šlectionnâ€š n'a pas â€štâ€š
	// retrouvâ€š dans la base.");
	return idModule;
}
// //////////////////////////////////////////////////////////////////////////////
// //////////////////////////////////////////////////////////////////////////////
// /// Fonction getIdArchi /////
// //////////////////////////////////////////////////////////////////////////////
// //////////////////////////////////////////////////////////////////////////////
// On filtre sur le nom du module et de l'organisation
function getIdArchi(NomArchi, idModule) {
	var idArchi = '';
	var xmlhttp;
	// On ne peut pas mettre le nom de l'orga directement dans cet Url pour
	// filtrer,
	// l'api ne fonctionne pas avec les champs tout en majuscule, le filtrage
	// sur nom d'orga sera fait dans une boucle plus loin...
	getUrl = '/Aciernet/ListeArchisParModule.jsp?ipRequestCenter='
			+ encodeURI(window.location.hostname) + '&idModule='
			+ encodeURI(idModule); // /NomModule=' + NomModule;
	getUrl = getUrl.replace(/%C2%A0/, '%20');
	// alert('getUrl: ' + getUrl);
	if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
		xmlhttp = new XMLHttpRequest();
	} else {// code for IE6, IE5
		xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
	}
	xmlhttp.open("GET", getUrl, false);
	xmlhttp.send();
	xmlDoc = xmlhttp.responseXML;
	if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
		var x = xmlDoc.getElementsByTagName("Archi");
		var idArchiTemp = '';
		var NomArchiTemp = '';
		// alert(x.length);
		for (i = 0; i < x.length; i++) {
			idArchiTemp = x[i].getElementsByTagName("idArchi")[0].textContent;
			if (typeof idArchiTemp === 'undefined')
				idArchiTemp = x[i].getElementsByTagName("idArchi")[0].childNodes[0].nodeValue;
			NomArchiTemp = x[i].getElementsByTagName("NomArchi")[0].textContent;
			if (typeof NomArchiTemp === 'undefined')
				NomArchiTemp = x[i].getElementsByTagName("NomArchi")[0].childNodes[0].nodeValue;
			if (NomArchi == NomArchiTemp) {
				// alert('if idModuleTemp + ' + idModuleTemp);
				idArchi = idArchiTemp;
				return idArchi;
			}
		}// fin de la boucle for
	}
	// alert("Le module sâ€šlectionnâ€š n'a pas â€štâ€š
	// retrouvâ€š dans la base.");
	return idArchi;
}
// //////////////////////////////////////////////////////////////////////////////
// //////////////////////////////////////////////////////////////////////////////
// /// fonction findLink /////
// //////////////////////////////////////////////////////////////////////////////
// //////////////////////////////////////////////////////////////////////////////
function findLink(url) {
	var sid = getServiceID(url);
	var finalLink = "/RequestCenter/myservices/navigate.do?query=orderform&sid="
			+ encodeURI(sid);
	finalLink = finalLink.replace(/%C2%A0/, '%20');
	// alert(finalLink);
	return finalLink;
}
// //////////////////////////////////////////////////////////////////////////////
// //////////////////////////////////////////////////////////////////////////////
// /// Fonction moduleExterneOuNon /////
// //////////////////////////////////////////////////////////////////////////////
// //////////////////////////////////////////////////////////////////////////////
function getPropertyExterne(IdModule) {
}
// //////////////////////////////////////////////////////////////////////////////
// //////////////////////////////////////////////////////////////////////////////
// ///////////////// DÃ©but de l'extjs ///////////////////////////
// //////////////////////////////////////////////////////////////////////////////
// //////////////////////////////////////////////////////////////////////////////
Ext
		.onReady(function() {
			// ////////////////////////////////////////////////////////////////////////////
			// RÃšcupÃšration du role de la personne connectÃše
			// ////////////////////////////////////////////////////////////////////////////
			// 1. On rÃ©cupÃ¨re son Prenom et Nom
			var PrenomNom = getUserLogin();
			// 2. On utilise Prenom + " " + Nom pour obtenir son role et son
			// login via
			// InformationsUtilisateur.jsp
			var roleUser = '';
			// On teste d'abord si le user est gestionnaire de cloud
			var xmlhttp1;
			var getUrlRole = '';
			getUrlRole = '/Aciernet/InformationsUtilisateur.jsp?utilisateur='
					+ encodeURI(PrenomNom) + '&ipRequestCenter='
					+ encodeURI(window.location.hostname);
			getUrlRole = getUrlRole.replace(/%C2%A0/, '%20');
			if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome,
				// Opera, Safari
				xmlhttp1 = new XMLHttpRequest();
			} else {// code for IE6, IE5
				xmlhttp1 = new ActiveXObject("Microsoft.XMLHTTP");
			}
			xmlhttp1.open("GET", getUrlRole, false);
			xmlhttp1.send();
			xmlDoc = xmlhttp1.responseXML;
			var roleUser = '';
			var role = xmlDoc.getElementsByTagName("role")[0].textContent;
			if (typeof role === 'undefined')
				var role = xmlDoc.getElementsByTagName("role")[0].childNodes[0].nodeValue;
			var login = xmlDoc.getElementsByTagName("login")[0].textContent;
			if (typeof login === 'undefined')
				var login = xmlDoc.getElementsByTagName("login")[0].childNodes[0].nodeValue;
			if (role == 'Gestionnaire de cloud') {
				roleUser = 'gc';
			}
			if (role == 'Gestionnaire organisation') {
				roleUser = 'go';
			}
			if (role == 'Gestionnaire des applications') {
				roleUser = 'ga';
			}
			// alert ("roleUser: " + roleUser);
			/*
			 * 
			 * this overrides default extjs paging function
			 * 
			 * needs to be loaded before store and grid defintion!!
			 * 
			 */
			Ext
					.override(
							Ext.PagingToolbar,
							{
								movePrevious : function() {
									this.doLoad(Math.max(1, this.cursor
											- this.pageSize));
								},
								moveFirst : function() {
									this.doLoad(1);
								},
								changePage : function(page) {
									alert('page : ' + page);
									if (page == 1) {
										this.doLoad(1);
									}
									this.doLoad(((page - 1) * this.pageSize)
											.constrain(0, this.store
													.getTotalCount()));
								},
								updateInfo : function() {
									if (this.displayItem) {
										var count = this.store.getCount();
										showDisplayMsg = String.format(
										this.displayMsg,
										this.cursor, count, this.store
												.getTotalCount()
										);
										if (this.cursor > 1) {
											showDisplayMsg = String.format(
											this.displayMsg,
											this.cursor, this.cursor + count
													- 1, this.store
													.getTotalCount()
											);
										}
										var msg = count == 0 ?
										this.emptyMsg : showDisplayMsg;
										// alert(this.cursor);
										this.displayItem.setText(msg);
									}
								},
								onLoad : function(store, r, o) {
									if (!this.rendered) {
										this.dsLoaded = [ store, r, o ];
										return;
									}
									var p = this.getParams();
									this.cursor = (o.params && o.params[p.start]) ? o.params[p.start]
											: 1;
									var d = this.getPageData(), ap = d.activePage, ps = d.pages;
									this.afterTextItem.setText(String.format(
											this.afterPageText, d.pages));
									this.inputItem.setValue(ap);
									this.first.setDisabled(ap == 1);
									this.prev.setDisabled(ap == 1);
									this.next.setDisabled(ap == ps);
									this.last.setDisabled(ap == ps);
									this.refresh.enable();
									this.updateInfo();
									this.fireEvent('change', this, d);
								},
								getPageData : function() {
									var total = this.store.getTotalCount();
									return {
										total : total,
										activePage : Math
												.ceil(((this.cursor - 1) + this.pageSize)
														/ this.pageSize),
										pages : total < this.pageSize ? 1
												: Math.ceil(total
														/ this.pageSize)
									};
								},
								readPage : function(d) {
									var v = this.inputItem.getValue(), pageNum;
									if (!v || isNaN(pageNum = parseInt(v, 10))) {
										this.inputItem.setValue(d.activePage);
										return false;
									}
									return pageNum;
								},
								onPagingKeyDown : function(field, e) {
									var k = e.getKey(), d = this.getPageData(), pageNum;
									if (k == e.RETURN) {
										e.stopEvent();
										pageNum = this.readPage(d);
										if (pageNum !== false) {
											pageNum = Math.min(Math.max(1,
													pageNum), d.pages) - 1;
											if (pageNum == 0) {
												this.doLoad(1);
											} else {
												this.doLoad(pageNum
														* this.pageSize + 1);
											}
										}
									} else if (k == e.HOME || k == e.END) {
										e.stopEvent();
										pageNum = k == e.HOME ? 1 : d.pages;
										field.setValue(pageNum);
									} else if (k == e.UP || k == e.PAGEUP
											|| k == e.DOWN || k == e.PAGEDOWN) {
										e.stopEvent();
										if ((pageNum = this.readPage(d))) {
											var increment = e.shiftKey ? 10 : 1;
											if (k == e.DOWN || k == e.PAGEDOWN) {
												increment *= -1;
											}
											pageNum += increment;
											if (pageNum >= 1
													& pageNum <= d.pages) {
												field.setValue(pageNum);
											}
										}
									}
								}
							});
			/* ends overriding */
			// ==============================================================
			// Variables
			// ==============================================================
			var contextMenu;
			var defaultPageSize = 10;
			var row = 0;
			var getUrlArchi = '/RequestCenter/nsapi/serviceitem/SiArchi/';
			var getUrlModule = '/RequestCenter/nsapi/serviceitem/Siconteneur_appli/';
			var getURLOrga = '';
			// ==============================================================
			// Affichage du tableau pour chaque role
			// ==============================================================
			// /////////////////////////////////////////////////////////////////////////////////
			// /////////////////////////////////////////////////////////////////////////////////
			// /////////////////////////////////////////////////////////////////////////////////
			// /////////////////////////////////////////////////////////////////////////////////
			// /////////////////////////////////////////////////////////////////////////////////
			// /////////////////////////////////////////////////////////////////////////////////
			// /////////////////////////////////////////////////////////////////////////////////
			// /////////////////////////////////////////////////////////////////////////////////
			// /////////////////
			// XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX///////////////////////////
			// /////////////////
			// XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX///////////////////////////
			// /////////////////
			// XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX///////////////////////////
			// /////////////////
			// XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX///////////////////////////
			// ///////////////// XXXXXXXXXXXXXXX
			// XXXXXXXXXXXXXXX///////////////////////////
			// ///////////////// XXXXXXXXXXXXXXX GC
			// XXXXXXXXXXXXXXX///////////////////////////
			// ///////////////// XXXXXXXXXXXXXXX
			// XXXXXXXXXXXXXXX///////////////////////////
			// /////////////////
			// XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX///////////////////////////
			// /////////////////
			// XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX///////////////////////////
			// /////////////////
			// XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX///////////////////////////
			// /////////////////
			// XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX///////////////////////////
			// /////////////////////////////////////////////////////////////////////////////////
			// /////////////////////////////////////////////////////////////////////////////////
			// /////////////////////////////////////////////////////////////////////////////////
			// /////////////////////////////////////////////////////////////////////////////////
			// /////////////////////////////////////////////////////////////////////////////////
			// /////////////////////////////////////////////////////////////////////////////////
			// /////////////////////////////////////////////////////////////////////////////////
			// /////////////////////////////////////////////////////////////////////////////////
			if (roleUser == 'gc') {
				var orgaSelectionnee;
				// alert("vous Ãªtes gestionnaire de cloud");
				getURLOrga = '/Aciernet/ListeOrgas.jsp?ipRequestCenter='
						+ window.location.hostname + '&typeVM=bronze';
				var fieldListComboOrga = [ {
					name : 'Orga',
					mapping : 'orgName'
				} ];
				var fieldListComboModule = [ {
					name : 'Module',
					mapping : 'NomModule'
				} ];
				// Le champ Nom correspond an nom de l'architecture
				var fieldListComboArchi = [ {
					name : 'Archi',
					mapping : 'NomArchi'
				} ]; // Remplacer Name par Nom
				var proxyComboOrga = new Ext.data.HttpProxy({
					url : getURLOrga,
					method : 'GET'
				});
				// Le getURLOrga ici n'est pas une erreur. Je n'ai pas encore
				// testÃ© si on peut tout simplement le supprimer
				var proxyComboModule = new Ext.data.HttpProxy({
					method : 'GET'
				});
				var proxyComboArchi = new Ext.data.HttpProxy({
					url : getURLOrga,
					method : 'GET'
				});
				var total = '1000';
				// /////////////////////////////////////////
				var OrgaStore = new Ext.data.XmlStore({
					autoDestroy : true,
					storeId : 'comboStoreOrga',
					proxy : proxyComboOrga,
					record : "Organisation",
					totalProperty : 'total',
					fields : fieldListComboOrga
				});
				// OrgaStore.setBaseParam("recordSize",50);
				OrgaStore.load();
				// ////////////////////////////////////////:
				var ModuleStore = new Ext.data.XmlStore({
					autoDestroy : true,
					storeId : 'comboStore',
					proxy : proxyComboModule,
					record : 'Module',
					fields : fieldListComboModule
				});
				// ModuleStore.setBaseParam("recordSize",50);
				// ModuleStore.load();
				// /////////////////////////////////////////
				// ////////////////////////////////////////:
				var ArchiStore = new Ext.data.XmlStore({
					autoDestroy : true,
					storeId : 'comboStore',
					proxy : proxyComboArchi,
					record : 'Archi',
					fields : fieldListComboArchi
				});
				ArchiStore.setBaseParam("recordSize", 50);
				ArchiStore.load();
				// /////////////////////////////////////////
				var combo = new Ext.form.ComboBox(
				{
					fieldLabel : 'VLAN',
					hiddenName : 'popType',
					store : OrgaStore,
					valueField : 'Orga',
					displayField : 'Orga',
					triggerAction : 'all',
					emptyText : 'Sélectionnez une organisation',
					selectOnFocus : true,
					editable : false,
					typeAhead : false,
					allowBlank : false
				}
				);
				var combomodules = new Ext.form.ComboBox(
				{
					fieldLabel : 'VLAN',
					hiddenName : 'popType',
					store : ModuleStore,
					valueField : 'Module',
					displayField : 'Module',
					triggerAction : 'all',
					emptyText : 'Sélectionnez un module',
					selectOnFocus : true,
					editable : false,
					typeAhead : false,
					allowBlank : false
				}
				);
				var comboArchi = new Ext.form.ComboBox(
				{
					fieldLabel : 'VLAN',
					hiddenName : 'popType',
					store : ArchiStore,
					valueField : 'Archi',
					displayField : 'Archi',
					triggerAction : 'all',
					emptyText : 'Sélectionnez une architecture',
					selectOnFocus : true,
					editable : false,
					typeAhead : false,
					allowBlank : false
				}
				);
				// ==============================================================
				// Fields to retrieve data
				// ==============================================================
				var fieldList = [ {
					name : "NomVM",
					mapping : 'NomVM'
				}, {
					name : "NomZone",
					mapping : 'NomZone'
				}, {
					name : "PoolVM",
					mapping : 'Pool'
				}, {
					name : "IP",
					mapping : 'IP'
				}, {
					name : "CPU",
					mapping : 'CPU'
				}, {
					name : "RAM",
					mapping : 'RAM'
				}, {
					name : "HDD",
					mapping : 'HDD'
				}
				];
				// ==============================================================
				// Display column headers information
				// ==============================================================
				var displayList = [ {
					header : "Nom de la VM",
					dataIndex : 'NomVM',
					// width: 25,
					align : 'center',
					sortable : true
				}, {
					header : "Nom de la zone",
					dataIndex : "NomZone",
					align : 'center',
					// width:35,
					sortable : true
				}, {
					header : "Pool associé",
					dataIndex : "PoolVM",
					align : 'center',
					// width:35,
					sortable : true
				}, {
					header : "IP de la VM",
					dataIndex : "IP",
					align : 'center',
					// width:35,
					sortable : true
				}, {
					header : "CPU",
					dataIndex : "CPU",
					align : 'center',
					// width:35,
					sortable : true
				}, {
					header : "RAM (GB)",
					dataIndex : "RAM",
					align : 'center',
					// width:35,
					sortable : true
				}, {
					header : "Disque (GB)",
					dataIndex : "HDD",
					align : 'center',
					// width:35,
					sortable : true
				}
				];
				// ==============================================================
				// The filter button
				// ==============================================================
				var filterButton = new Ext.Button({
					xtype : 'button',
					cls : 'btn-ciacSE',
					handleMouseEvents : false
				});
				var filterButtonModules = new Ext.Button({
					xtype : 'button',
					cls : 'btn-ciacSE',
					handleMouseEvents : false
				});
				var filterButtonArchi = new Ext.Button({
					xtype : 'button',
					cls : 'btn-ciacSE',
					handleMouseEvents : false
				});
				// filterButton.setText("Appliquer filtre");
				// var urlCompleteCurrentUser = 'http:' + "//" +
				// window.location.host +
				// '/RequestCenter/nsapi/directory/people/currentuser';
				var urlIcon = 'http:' + "//" + window.location.host
						+ '/RequestCenter/images/ok.png';
				filterButton.setIcon(urlIcon);
				filterButtonModules.setIcon(urlIcon);
				filterButtonArchi.setIcon(urlIcon);
				var onClickOrga = function() {
					Organisation = combo.getValue();
					// On utilise le paramÃ¨tre Externe=non car non n'affiche
					// que les VM internes dans ce portlet
					proxyBust = new Ext.data.HttpProxy(
							{
								url : '/Aciernet/ListeModulesparOrga.jsp?Externe=non&ipRequestCenter='
										+ window.location.hostname
										+ '&organisation=' + Organisation,
								method : 'GET'
							});
					ModuleStore.proxy = proxyBust;
					ModuleStore.load();
				}
				var onClickModule = function() {
					var nomOrga = combo.getValue();
					var nomModule = combomodules.getValue();
					var IdModule = getIdModule(nomModule, nomOrga);
					// on rÃ©cupÃ©re le caractÃ¨re externe ou pas du
					// module: moduleExterneOuNon
					// alert("Module externe?: " + externeOuNon);
					if (externeOuNon == "non") {
						// getUrlArchi
						proxyBust = new Ext.data.HttpProxy(
								{
									url : '/Aciernet/ListeArchisParModule.jsp?ipRequestCenter='
											+ window.location.hostname
											+ '&idModule=' + IdModule,
									method : 'GET'
								});
						ArchiStore.proxy = proxyBust;
						ArchiStore.load();
						// alert("mod interne : " +
						// '/Aciernet/ListeArchisParModule.jsp?ipRequestCenter='
						// + window.location.hostname + '&idModule=' +
						// IdModule);
					}
					// On ne traite plus les modules externes dans ce portlet
					if (externeOuNon == "oui") {
						proxyBust = new Ext.data.HttpProxy({
							url : '/Aciernet/ListeVM.jsp?ipRequestCenter='
									+ window.location.hostname
									+ '&Externe=oui&CleModule=' + IdModule,
							method : 'GET'
						});
						contextMenu = new Ext.menu.Menu(
								{ // OSEF on ne traite pas les VM externes
									items : [
											{
												text : 'Modification d\'une VM',
												handler : function() {
													var nomVM = store
															.getAt(row).get(
																	'NomVM');
													var url = findLink("Modification d'une VM")
															+ '&DefaultAffichage_modificationVM.Organisation_liste='
															+ encodeURI(nomOrga)
															+ '&DefaultAffichage_modificationVM.Module_choix_gest_cloud='
															+ encodeURI(nomModule)
															+ '&DefaultAffichage_modificationVM.Choix_archi='
															+ '&DefaultAffichage_modificationVM.choix_zone='
															+ '&DefaultAffichage_modificationVM.Nom_VM='
															+ encodeURI(nomVM)
															+ '&DefaultAffichage_modificationVM.VM_externe=oui'
													;
													parent.GB_showFullScreen(
															'Cloud in a box',
															url);
												}
											},
											{
												text : 'Suppression d\'une VM',
												handler : function() {
													var nomVM = store
															.getAt(row).get(
																	'NomVM');
													var url = findLink("Suppression d'une VM")
															+ '&DefaultAffichage_modificationVM.Organisation_liste='
															+ encodeURI(nomOrga)
															+ '&DefaultAffichage_modificationVM.Module_choix_gest_cloud='
															+ encodeURI(nomModule)
															+ '&DefaultAffichage_modificationVM.Choix_archi='
															+ '&DefaultAffichage_modificationVM.choix_zone='
															+ '&DefaultAffichage_modificationVM.Nom_VM='
															+ encodeURI(nomVM)
															+ '&DefaultAffichage_modificationVM.VM_externe=oui'
													;
													parent.GB_showFullScreen(
															'Cloud in a box',
															url);
												}
											},
											{
												text : 'Sauvegarde d\'une VM',
												handler : function() {
													var url = findLink("Sauvegarde d'une VM");
													parent.GB_showFullScreen(
															'Cloud in a box',
															url);
												}
											},
											{
												text : 'Restauration d\'une VM',
												handler : function() {
													var url = findLink("Restauration d'une VM");
													parent.GB_showFullScreen(
															'Cloud in a box',
															url);
												}
											},
											{
												text : 'Recevoir le mot de passe par mail',
												handler : function() {
													var url = findLink("Envoyer le mot de passe de la VM par mail")
															+ '&DefaultSixChampsTexte.Champ1='
															+ encodeURI(nomOrga);
													parent
															.GB_showFullScreen(
																	'Recevoir le mot de passe par mail',
																	url);
												}
											}
									]
								});
						store.proxy = proxyBust;
						store.load();
						// alert("mod externe : " +
						// '/Aciernet/ListeVM.jsp?ipRequestCenter=' +
						// window.location.hostname + '&Externe=oui&CleModule='
						// + IdModule);
					}
					// store.proxy = proxyBust;
					// store.load();
				}
				var onClickArchi = function() {
					var nomOrga = combo.getValue();
					var nomModule = combomodules.getValue();
					var nomArchi = comboArchi.getValue();
					if (externeOuNon == "non") {
						contextMenu = new Ext.menu.Menu(
								{
									items : [
											{
												text : 'Modification d\'une VM',
												handler : function() {
													var zone = store.getAt(row)
															.get('NomZone');
													var nomVM = store
															.getAt(row).get(
																	'NomVM');
													var url = findLink("Modification d'une VM")
															+ '&DefaultAffichage_modificationVM.Organisation_liste='
															+ encodeURI(nomOrga)
															+ '&DefaultAffichage_modificationVM.Module_choix_gest_cloud='
															+ encodeURI(nomModule)
															+ '&DefaultAffichage_modificationVM.Choix_archi='
															+ encodeURI(nomArchi)
															+ '&DefaultAffichage_modificationVM.choix_zone='
															+ encodeURI(zone)
															+ '&DefaultAffichage_modificationVM.Nom_VM='
															+ encodeURI(nomVM)
															+ '&DefaultAffichage_modificationVM.VM_externe=non'
													;
													parent.GB_showFullScreen(
															'Cloud in a box',
															url);
												}
											},
											{
												text : 'Suppression d\'une VM',
												handler : function() {
													var zone = store.getAt(row)
															.get('NomZone');
													var nomVM = store
															.getAt(row).get(
																	'NomVM');
													var url = findLink("Suppression d'une VM")
															+ '&DefaultAffichage_modificationVM.Organisation_liste='
															+ encodeURI(nomOrga)
															+ '&DefaultAffichage_modificationVM.Module_choix_gest_cloud='
															+ encodeURI(nomModule)
															+ '&DefaultAffichage_modificationVM.Choix_archi='
															+ encodeURI(nomArchi)
															+ '&DefaultAffichage_modificationVM.choix_zone='
															+ encodeURI(zone)
															+ '&DefaultAffichage_modificationVM.Nom_VM='
															+ encodeURI(nomVM)
															+ '&DefaultAffichage_modificationVM.VM_externe=non'
													;
													parent.GB_showFullScreen(
															'Cloud in a box',
															url);
												}
											},
											{
												text : 'Sauvegarde d\'une VM',
												handler : function() {
													var url = findLink("Sauvegarde d'une VM");
													parent.GB_showFullScreen(
															'Cloud in a box',
															url);
												}
											},
											{
												text : 'Restauration d\'une VM',
												handler : function() {
													var url = findLink("Restauration d'une VM");
													parent.GB_showFullScreen(
															'Cloud in a box',
															url);
												}
											},
											{
												text : 'Recevoir le mot de passe par mail',
												handler : function() {
													var nomVM = store
															.getAt(row).get(
																	'NomVM');
													var Zone = store.getAt(row)
															.get('NomZone');
													var url = findLink("Envoyer le mot de passe de la VM par mail")
															+ '&DefaultSixChampsTexte.Champ1='
															+ encodeURI(nomOrga)
															+ '&DefaultSixChampsTexte.Champ2='
															+ encodeURI(nomModule)
															+ '&DefaultSixChampsTexte.Champ3='
															+ encodeURI(nomArchi)
															+ '&DefaultSixChampsTexte.Champ4='
															+ encodeURI(Zone)
															+ '&DefaultSixChampsTexte.Champ5='
															+ encodeURI(nomVM);
													parent
															.GB_showFullScreen(
																	'Recevoir le mot de passe par mail',
																	url);
												}
											}
									]
								});
					}
					var IdModule = getIdModule(nomModule, nomOrga);
					// function getIdArchi(NomArchi, idModule, NomOrga)
					// alert("avant getIdArchi");
					var IdArchi = getIdArchi(nomArchi, IdModule);
					proxyBust = new Ext.data.HttpProxy({
						url : '/Aciernet/ListeVM.jsp?ipRequestCenter='
								+ window.location.hostname
								+ '&Externe=non&CleArchi=' + IdArchi,
						method : 'GET'
					});
					store.proxy = proxyBust;
					store.load();
				}
				filterButton.on('click', onClickOrga);
				filterButtonModules.on('click', onClickModule);
				filterButtonArchi.on('click', onClickArchi);
				// ==============================================================
				// The proxy call
				// ==============================================================
				var proxy = new Ext.data.HttpProxy({
					method : 'GET'
				});
				var total = 10;
				// ==============================================================
				// The data store
				// ==============================================================
				var store = new Ext.data.XmlStore({
					autoDestroy : true,
					autoLoad : false,
					storeId : 'myStore',
					proxy : proxy,
					record : 'VM',
					totalProperty : 'total',
					fields : fieldList
				});
				// store.load();
				var toolbar = new Ext.PagingToolbar({
					pageSize : defaultPageSize,
					displayInfo : true,
					store : store,
					emptyMsg : "Rien Ã  afficher"
				});
				// ==============================================================
				// The grid panel to display data
				// ==============================================================
				// choix du module et affichage de l'architecture
				var gridVM = new Ext.grid.GridPanel({
					store : store,
					title : 'Liste des VM',
					columns : displayList,
					enableColumnHide : false,
					viewConfig : {
						forceFit : true,
						scrollOffset : 0
					},
					width : "100%",
					autoHeight : true,
					renderTo : '#divName#',
					tbar : [ combo, filterButton, '&nbsp;&nbsp;', combomodules,
							filterButtonModules, '&nbsp;&nbsp;', comboArchi,
							filterButtonArchi ],
					sm : new Ext.grid.RowSelectionModel({
						singleSelect : true
					}),
					bbar : [ '->', toolbar ]
				});
				gridVM.render();
				gridVM.on('rowcontextmenu', function(e, t, o) {
					row = t;
					contextMenu.showAt(o.xy);
					o.stopEvent();
				});
			}
			// /////////////////////////////////////////////////////////////////////////////////
			// /////////////////////////////////////////////////////////////////////////////////
			// /////////////////////////////////////////////////////////////////////////////////
			// /////////////////////////////////////////////////////////////////////////////////
			// /////////////////////////////////////////////////////////////////////////////////
			// /////////////////////////////////////////////////////////////////////////////////
			// /////////////////////////////////////////////////////////////////////////////////
			// /////////////////////////////////////////////////////////////////////////////////
			// /////////////////
			// XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX///////////////////////////
			// /////////////////
			// XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX///////////////////////////
			// /////////////////
			// XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX///////////////////////////
			// /////////////////
			// XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX///////////////////////////
			// ///////////////// XXXXXXXXXXXXXXX
			// XXXXXXXXXXXXXXX///////////////////////////
			// ///////////////// XXXXXXXXXXXXXXX GO
			// XXXXXXXXXXXXXXX///////////////////////////
			// ///////////////// XXXXXXXXXXXXXXX
			// XXXXXXXXXXXXXXX///////////////////////////
			// /////////////////
			// XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX///////////////////////////
			// /////////////////
			// XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX///////////////////////////
			// /////////////////
			// XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX///////////////////////////
			// /////////////////
			// XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX///////////////////////////
			// /////////////////////////////////////////////////////////////////////////////////
			// /////////////////////////////////////////////////////////////////////////////////
			// /////////////////////////////////////////////////////////////////////////////////
			// /////////////////////////////////////////////////////////////////////////////////
			// /////////////////////////////////////////////////////////////////////////////////
			// /////////////////////////////////////////////////////////////////////////////////
			// /////////////////////////////////////////////////////////////////////////////////
			// /////////////////////////////////////////////////////////////////////////////////
			if (roleUser == 'go') {
				var Organisation = getUserOrga(PrenomNom);
				// alert("prenom orga " + PrenomNom + Organisation);
				var fieldListComboModule = [ {
					name : 'Module',
					mapping : 'NomModule'
				} ];
				// Le champ Nom correspond an nom de l'architecture
				var fieldListComboArchi = [ {
					name : 'Archi',
					mapping : 'NomArchi'
				} ]; // Remplacer Name par Nom
				// On utilise le paramÃ¨tre Externe=non car non n'affiche que
				// les VM internes dans ce portlet
				var urlModule = '/Aciernet/ListeModulesparOrga.jsp?Externe=non&ipRequestCenter='
						+ window.location.hostname
						+ '&organisation='
						+ Organisation;
				// Le getURLOrga ici n'est pas une erreur. Je n'ai pas encore
				// testÃ© si on peut tout simplement le supprimer
				var proxyComboModule = new Ext.data.HttpProxy({
					url : urlModule,
					method : 'GET'
				});
				var proxyComboArchi = new Ext.data.HttpProxy({
					method : 'GET'
				});
				// ////////////////////////////////////////:
				var ModuleStore = new Ext.data.XmlStore({
					autoDestroy : true,
					storeId : 'comboStore',
					proxy : proxyComboModule,
					record : 'Module',
					fields : fieldListComboModule
				});
				ModuleStore.setBaseParam("recordSize", 50);
				ModuleStore.load();
				// /////////////////////////////////////////
				// ////////////////////////////////////////:
				var ArchiStore = new Ext.data.XmlStore({
					autoDestroy : true,
					storeId : 'comboStore',
					proxy : proxyComboArchi,
					record : 'Archi',
					fields : fieldListComboArchi
				});
				// ArchiStore.setBaseParam("recordSize",50);
				// ArchiStore.load();
				// /////////////////////////////////////////
				var combomodules = new Ext.form.ComboBox(
				{
					fieldLabel : 'VLAN',
					hiddenName : 'popType',
					store : ModuleStore,
					valueField : 'Module',
					displayField : 'Module',
					triggerAction : 'all',
					emptyText : 'Sélectionnez un module',
					selectOnFocus : true,
					editable : false,
					typeAhead : false,
					allowBlank : false
				}
				);
				var comboArchi = new Ext.form.ComboBox(
				{
					fieldLabel : 'VLAN',
					hiddenName : 'popType',
					store : ArchiStore,
					valueField : 'Archi',
					displayField : 'Archi',
					triggerAction : 'all',
					emptyText : 'Sélectionnez une architecture',
					selectOnFocus : true,
					editable : false,
					typeAhead : false,
					allowBlank : false
				}
				);
				// ==============================================================
				// Fields to retrieve data
				// ==============================================================
				var fieldList = [ {
					name : "NomVM",
					mapping : 'NomVM'
				}, {
					name : "NomZone",
					mapping : 'NomZone'
				}, {
					name : "PoolVM",
					mapping : 'Pool'
				}, {
					name : "IP",
					mapping : 'IP'
				}, {
					name : "CPU",
					mapping : 'CPU'
				}, {
					name : "RAM",
					mapping : 'RAM'
				}, {
					name : "HDD",
					mapping : 'HDD'
				} ];
				// ==============================================================
				// Display column headers information
				// ==============================================================
				var displayList = [ {
					header : "Nom de la VM",
					dataIndex : 'NomVM',
					// width: 25,
					align : 'center',
					sortable : true
				}, {
					header : "Nom de la zone",
					dataIndex : "NomZone",
					align : 'center',
					// width:35,
					sortable : true
				}, {
					header : "Pool associé",
					dataIndex : "PoolVM",
					align : 'center',
					// width:35,
					sortable : true
				}, {
					header : "IP de la VM",
					dataIndex : "IP",
					align : 'center',
					// width:35,
					sortable : true
				}, {
					header : "CPU",
					dataIndex : "CPU",
					align : 'center',
					// width:35,
					sortable : true
				}, {
					header : "RAM (GB)",
					dataIndex : "RAM",
					align : 'center',
					// width:35,
					sortable : true
				}, {
					header : "Disque (GB)",
					dataIndex : "HDD",
					align : 'center',
					// width:35,
					sortable : true
				} ];
				// ==============================================================
				// The filter button
				// ==============================================================
				var filterButtonModules = new Ext.Button({
					xtype : 'button',
					cls : 'btn-ciacSE',
					handleMouseEvents : false
				});
				var filterButtonArchi = new Ext.Button({
					xtype : 'button',
					cls : 'btn-ciacSE',
					handleMouseEvents : false
				});
				// filterButton.setText("Appliquer filtre");
				// var urlCompleteCurrentUser = 'http:' + "//" +
				// window.location.host +
				// '/RequestCenter/nsapi/directory/people/currentuser';
				var urlIcon = 'http:' + "//" + window.location.host
						+ '/RequestCenter/images/ok.png';
				filterButtonModules.setIcon(urlIcon);
				filterButtonArchi.setIcon(urlIcon);
				/*
				 * 
				 * var onClickOrga = function() {
				 * 
				 * 
				 * 
				 * 
				 * 
				 * Organisation = combo.getValue();
				 * 
				 * 
				 * 
				 * proxyBust = new Ext.data.HttpProxy({
				 * 
				 * url : '/Aciernet/ListeModulesparOrga.jsp?ipRequestCenter=' +
				 * window.location.hostname + '&organisation=' + Organisation,
				 * 
				 * method : 'GET'
				 * 
				 * });
				 * 
				 * ModuleStore.proxy = proxyBust;
				 * 
				 * 
				 * 
				 * ModuleStore.load(); }
				 */
				var onClickModule = function() {
					var nomModule = combomodules.getValue();
					var IdModule = getIdModule(nomModule, Organisation);
					// on rÃ©cupÃ©re le caractÃ¨re externe ou pas du
					// module: moduleExterneOuNon
					// alert("Module externe?: " + externeOuNon);
					if (externeOuNon == "non") {
						// getUrlArchi
						proxyBust = new Ext.data.HttpProxy(
								{
									url : '/Aciernet/ListeArchisParModule.jsp?ipRequestCenter='
											+ window.location.hostname
											+ '&idModule=' + IdModule,
									method : 'GET'
								});
						ArchiStore.proxy = proxyBust;
						ArchiStore.load();
						// alert("mod interne : " +
						// '/Aciernet/ListeArchisParModule.jsp?ipRequestCenter='
						// + window.location.hostname + '&idModule=' +
						// IdModule);
					}
					if (externeOuNon == "oui") {
						proxyBust = new Ext.data.HttpProxy({
							url : '/Aciernet/ListeVM.jsp?ipRequestCenter='
									+ window.location.hostname
									+ '&Externe=oui&CleModule=' + IdModule,
							method : 'GET'
						});
						contextMenu = new Ext.menu.Menu(
								{
									items : [
											{
												text : 'Modification d\'une VM',
												handler : function() {
													var nomVM = store
															.getAt(row).get(
																	'NomVM');
													var url = findLink("Modification d'une VM")
															+ '&DefaultAffichage_modificationVM.Organisation_unique='
															+ encodeURI(Organisation)
															+ '&DefaultAffichage_modificationVM.Module_choix_gest_cloud='
															+ encodeURI(nomModule)
															+ '&DefaultAffichage_modificationVM.Choix_archi='
															+ '&DefaultAffichage_modificationVM.choix_zone='
															+ '&DefaultAffichage_modificationVM.Nom_VM='
															+ encodeURI(nomVM)
															+ '&DefaultAffichage_modificationVM.VM_externe=oui'
													;
													parent.GB_showFullScreen(
															'Cloud in a box',
															url);
												}
											},
											{
												text : 'Suppression d\'une VM',
												handler : function() {
													var nomVM = store
															.getAt(row).get(
																	'NomVM');
													var url = findLink("Suppression d'une VM")
															+ '&DefaultAffichage_modificationVM.Organisation_unique='
															+ encodeURI(Organisation)
															+ '&DefaultAffichage_modificationVM.Module_choix_gest_cloud='
															+ encodeURI(nomModule)
															+ '&DefaultAffichage_modificationVM.Choix_archi='
															+ '&DefaultAffichage_modificationVM.choix_zone='
															+ '&DefaultAffichage_modificationVM.Nom_VM='
															+ encodeURI(nomVM)
															+ '&DefaultAffichage_modificationVM.VM_externe=oui'
													;
													parent.GB_showFullScreen(
															'Cloud in a box',
															url);
												}
											},
											{
												text : 'Sauvegarde d\'une VM',
												handler : function() {
													var url = findLink("Sauvegarde d'une VM");
													parent.GB_showFullScreen(
															'Cloud in a box',
															url);
												}
											},
											{
												text : 'Restauration d\'une VM',
												handler : function() {
													var url = findLink("Restauration d'une VM");
													parent.GB_showFullScreen(
															'Cloud in a box',
															url);
												}
											}
									]
								});
						store.proxy = proxyBust;
						store.load();
						// alert("mod externe : " +
						// '/Aciernet/ListeVM.jsp?ipRequestCenter=' +
						// window.location.hostname + '&Externe=oui&CleModule='
						// + IdModule);
					}
					// store.proxy = proxyBust;
					// store.load();
				}
				var onClickArchi = function() {
					var nomModule = combomodules.getValue();
					var nomArchi = comboArchi.getValue();
					if (externeOuNon == "non") {
						contextMenu = new Ext.menu.Menu(
								{
									items : [
											{
												text : 'Modification d\'une VM',
												handler : function() {
													var zone = store.getAt(row)
															.get('NomZone');
													var nomVM = store
															.getAt(row).get(
																	'NomVM');
													var url = findLink("Modification d'une VM")
															+ '&DefaultAffichage_modificationVM.Organisation_liste='
															+ encodeURI(Organisation)
															+ '&DefaultAffichage_modificationVM.Module_choix_gest_orga='
															+ encodeURI(nomModule)
															+ '&DefaultAffichage_modificationVM.choix_archi2='
															+ encodeURI(nomArchi)
															+ '&DefaultAffichage_modificationVM.choix_zone2='
															+ encodeURI(zone)
															+ '&DefaultAffichage_modificationVM.Nom_VM='
															+ encodeURI(nomVM)
															+ '&DefaultAffichage_modificationVM.VM_externe=non'
													;
													parent.GB_showFullScreen(
															'Cloud in a box',
															url);
												}
											},
											{
												text : 'Suppression d\'une VM',
												handler : function() {
													var zone = store.getAt(row)
															.get('NomZone');
													var nomVM = store
															.getAt(row).get(
																	'NomVM');
													var url = findLink("Suppression d'une VM")
															+ '&DefaultAffichage_modificationVM.Organisation_liste='
															+ encodeURI(Organisation)
															+ '&DefaultAffichage_modificationVM.Module_choix_gest_cloud='
															+ encodeURI(nomModule)
															+ '&DefaultAffichage_modificationVM.Choix_archi='
															+ encodeURI(nomArchi)
															+ '&DefaultAffichage_modificationVM.choix_zone='
															+ encodeURI(zone)
															+ '&DefaultAffichage_modificationVM.Nom_VM='
															+ encodeURI(nomVM)
															+ '&DefaultAffichage_modificationVM.VM_externe=non'
													;
													parent.GB_showFullScreen(
															'Cloud in a box',
															url);
												}
											},
											{
												text : 'Sauvegarde d\'une VM',
												handler : function() {
													var url = findLink("Sauvegarde d'une VM");
													parent.GB_showFullScreen(
															'Cloud in a box',
															url);
												}
											},
											{
												text : 'Restauration d\'une VM',
												handler : function() {
													var url = findLink("Restauration d'une VM");
													parent.GB_showFullScreen(
															'Cloud in a box',
															url);
												}
											},
											{
												text : 'Recevoir le mot de passe par mail',
												handler : function() {
													var nomVM = store
															.getAt(row).get(
																	'NomVM');
													var Zone = store.getAt(row)
															.get('NomZone');
													var url = findLink("Envoyer le mot de passe de la VM par mail")
															+ '&DefaultSixChampsTexte.Champ1='
															+ encodeURI(Organisation)
															+ '&DefaultSixChampsTexte.Champ2='
															+ encodeURI(nomModule)
															+ '&DefaultSixChampsTexte.Champ3='
															+ encodeURI(nomArchi)
															+ '&DefaultSixChampsTexte.Champ4='
															+ encodeURI(Zone)
															+ '&DefaultSixChampsTexte.Champ5='
															+ encodeURI(nomVM);
													parent
															.GB_showFullScreen(
																	'Recevoir le mot de passe par mail',
																	url);
												}
											}
									]
								});
					}
					var IdModule = getIdModule(nomModule, Organisation);
					// function getIdArchi(NomArchi, idModule, NomOrga)
					// alert("avant getIdArchi");
					var IdArchi = getIdArchi(nomArchi, IdModule);
					// alert("idMod : " + IdModule + "---idArchi---" + IdArchi);
					proxyBust = new Ext.data.HttpProxy({
						url : '/Aciernet/ListeVM.jsp?ipRequestCenter='
								+ window.location.hostname
								+ '&Externe=non&CleArchi=' + IdArchi,
						method : 'GET'
					});
					store.proxy = proxyBust;
					store.load();
				}
				filterButtonModules.on('click', onClickModule);
				filterButtonArchi.on('click', onClickArchi);
				// ==============================================================
				// The proxy call
				// ==============================================================
				var proxy = new Ext.data.HttpProxy({
					method : 'GET'
				});
				var total = 10;
				// ==============================================================
				// The data store
				// ==============================================================
				var store = new Ext.data.XmlStore({
					autoDestroy : true,
					autoLoad : false,
					storeId : 'myStore',
					proxy : proxy,
					record : 'VM',
					totalProperty : 'total',
					fields : fieldList
				});
				// store.load();
				var toolbar = new Ext.PagingToolbar({
					pageSize : defaultPageSize,
					displayInfo : true,
					store : store,
					emptyMsg : "Rien Ã  afficher"
				});
				// ==============================================================
				// The grid panel to display data
				// ==============================================================
				var contextMenu = new Ext.menu.Menu({
					items : [ {
						text : 'Modification d\'une VM',
						handler : function() {
							var url = findLink("Modification d'une VM");
							parent.GB_showFullScreen('Cloud in a box', url);
						}
					}, {
						text : 'Suppression d\'une VM',
						handler : function() {
							var url = findLink("Suppression d'une VM");
							parent.GB_showFullScreen('Cloud in a box', url);
						}
					}, {
						text : 'Sauvegarde d\'une VM',
						handler : function() {
							var url = findLink("Sauvegarde d'une VM");
							parent.GB_showFullScreen('Cloud in a box', url);
						}
					}, {
						text : 'Restauration d\'une VM',
						handler : function() {
							var url = findLink("Restauration d'une VM");
							parent.GB_showFullScreen('Cloud in a box', url);
						}
					}
					]
				});
				// choix du module et affichage de l'architecture
				var gridVM = new Ext.grid.GridPanel({
					store : store,
					title : 'Liste des VM',
					columns : displayList,
					enableColumnHide : false,
					viewConfig : {
						forceFit : true,
						scrollOffset : 0
					},
					width : "100%",
					autoHeight : true,
					renderTo : '#divName#',
					tbar : [ combomodules, filterButtonModules, '&nbsp;&nbsp;',
							comboArchi, filterButtonArchi ],
					sm : new Ext.grid.RowSelectionModel({
						singleSelect : true
					}),
					bbar : [ '->', toolbar ]
				});
				gridVM.render();
				gridVM.on('rowcontextmenu', function(e, t, o) {
					row = t;
					contextMenu.showAt(o.xy);
					o.stopEvent();
				});
			}
			// /////////////////////////////////////////////////////////////////////////////////
			// /////////////////////////////////////////////////////////////////////////////////
			// /////////////////////////////////////////////////////////////////////////////////
			// /////////////////////////////////////////////////////////////////////////////////
			// /////////////////////////////////////////////////////////////////////////////////
			// /////////////////////////////////////////////////////////////////////////////////
			// /////////////////////////////////////////////////////////////////////////////////
			// /////////////////////////////////////////////////////////////////////////////////
			// /////////////////
			// XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX///////////////////////////
			// /////////////////
			// XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX///////////////////////////
			// /////////////////
			// XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX///////////////////////////
			// /////////////////
			// XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX///////////////////////////
			// ///////////////// XXXXXXXXXXXXXXX
			// XXXXXXXXXXXXXXX///////////////////////////
			// ///////////////// XXXXXXXXXXXXXXX GA
			// XXXXXXXXXXXXXXX///////////////////////////
			// ///////////////// XXXXXXXXXXXXXXX
			// XXXXXXXXXXXXXXX///////////////////////////
			// /////////////////
			// XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX///////////////////////////
			// /////////////////
			// XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX///////////////////////////
			// /////////////////
			// XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX///////////////////////////
			// /////////////////
			// XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX///////////////////////////
			// /////////////////////////////////////////////////////////////////////////////////
			// /////////////////////////////////////////////////////////////////////////////////
			// /////////////////////////////////////////////////////////////////////////////////
			// /////////////////////////////////////////////////////////////////////////////////
			// /////////////////////////////////////////////////////////////////////////////////
			// /////////////////////////////////////////////////////////////////////////////////
			// /////////////////////////////////////////////////////////////////////////////////
			// /////////////////////////////////////////////////////////////////////////////////
			if (roleUser == 'ga') {
				var Organisation = getUserOrga(PrenomNom);
				// alert("prenom orga du gestionnaire de module" + PrenomNom +
				// Organisation);
				var fieldListComboModule = [ {
					name : 'Module',
					mapping : 'NomModule'
				} ];
				// Le champ Nom correspond an nom de l'architecture
				var fieldListComboArchi = [ {
					name : 'Archi',
					mapping : 'NomArchi'
				} ]; // Remplacer Name par Nom
				// On utilise le paramÃ¨tre Externe=non car non n'affiche que
				// les VM internes dans ce portlet
				var urlModule = '/Aciernet/ModulesGeres.jsp?Externe=non&ipRequestCenter='
						+ window.location.hostname + '&login=' + login;
				// Le getURLOrga ici n'est pas une erreur. Je n'ai pas encore
				// testÃ© si on peut tout simplement le supprimer
				var proxyComboModule = new Ext.data.HttpProxy({
					url : urlModule,
					method : 'GET'
				});
				var proxyComboArchi = new Ext.data.HttpProxy({
					method : 'GET'
				});
				// ////////////////////////////////////////:
				var ModuleStore = new Ext.data.XmlStore({
					autoDestroy : true,
					storeId : 'comboStore',
					proxy : proxyComboModule,
					record : 'Module',
					fields : fieldListComboModule
				});
				ModuleStore.setBaseParam("recordSize", 50);
				ModuleStore.load();
				// /////////////////////////////////////////
				// ////////////////////////////////////////:
				var ArchiStore = new Ext.data.XmlStore({
					autoDestroy : true,
					storeId : 'comboStore',
					proxy : proxyComboArchi,
					record : 'Archi',
					fields : fieldListComboArchi
				});
				// ArchiStore.setBaseParam("recordSize",50);
				// ArchiStore.load();
				// /////////////////////////////////////////
				var combomodules = new Ext.form.ComboBox(
				{
					fieldLabel : 'VLAN',
					hiddenName : 'popType',
					store : ModuleStore,
					valueField : 'Module',
					displayField : 'Module',
					triggerAction : 'all',
					emptyText : 'Sélectionnez un module',
					selectOnFocus : true,
					editable : false,
					typeAhead : false,
					allowBlank : false
				}
				);
				var comboArchi = new Ext.form.ComboBox(
				{
					fieldLabel : 'VLAN',
					hiddenName : 'popType',
					store : ArchiStore,
					valueField : 'Archi',
					displayField : 'Archi',
					triggerAction : 'all',
					emptyText : 'Sélectionnez une architecture',
					selectOnFocus : true,
					editable : false,
					typeAhead : false,
					allowBlank : false
				}
				);
				// ==============================================================
				// Fields to retrieve data
				// ==============================================================
				var fieldList = [ {
					name : "NomVM",
					mapping : 'NomVM'
				}, {
					name : "NomZone",
					mapping : 'NomZone'
				}, {
					name : "PoolVM",
					mapping : 'Pool'
				}, {
					name : "IP",
					mapping : 'IP'
				}, {
					name : "CPU",
					mapping : 'CPU'
				}, {
					name : "RAM",
					mapping : 'RAM'
				}, {
					name : "HDD",
					mapping : 'HDD'
				} ];
				// ==============================================================
				// Display column headers information
				// ==============================================================
				var displayList = [ {
					header : "Nom de la VM",
					dataIndex : 'NomVM',
					// width: 25,
					align : 'center',
					sortable : true
				}, {
					header : "Nom de la zone",
					dataIndex : "NomZone",
					align : 'center',
					// width:35,
					sortable : true
				}, {
					header : "Pool associé",
					dataIndex : "PoolVM",
					align : 'center',
					// width:35,
					sortable : true
				}, {
					header : "IP de la VM",
					dataIndex : "IP",
					align : 'center',
					// width:35,
					sortable : true
				}, {
					header : "CPU",
					dataIndex : "CPU",
					align : 'center',
					// width:35,
					sortable : true
				}, {
					header : "RAM (GB)",
					dataIndex : "RAM",
					align : 'center',
					// width:35,
					sortable : true
				}, {
					header : "Disque (GB)",
					dataIndex : "HDD",
					align : 'center',
					// width:35,
					sortable : true
				} ];
				// ==============================================================
				// The filter button
				// ==============================================================
				var filterButtonModules = new Ext.Button({
					xtype : 'button',
					cls : 'btn-ciacSE',
					handleMouseEvents : false
				});
				var filterButtonArchi = new Ext.Button({
					xtype : 'button',
					cls : 'btn-ciacSE',
					handleMouseEvents : false
				});
				// filterButton.setText("Appliquer filtre");
				// var urlCompleteCurrentUser = 'http:' + "//" +
				// window.location.host +
				// '/RequestCenter/nsapi/directory/people/currentuser';
				var urlIcon = 'http:' + "//" + window.location.host
						+ '/RequestCenter/images/ok.png';
				filterButtonModules.setIcon(urlIcon);
				filterButtonArchi.setIcon(urlIcon);
				/*
				 * 
				 * var onClickOrga = function() {
				 * 
				 * 
				 * 
				 * 
				 * 
				 * Organisation = combo.getValue();
				 * 
				 * 
				 * 
				 * proxyBust = new Ext.data.HttpProxy({
				 * 
				 * url : '/Aciernet/ListeModulesparOrga.jsp?ipRequestCenter=' +
				 * window.location.hostname + '&organisation=' + Organisation,
				 * 
				 * method : 'GET'
				 * 
				 * });
				 * 
				 * ModuleStore.proxy = proxyBust;
				 * 
				 * 
				 * 
				 * ModuleStore.load(); }
				 */
				var onClickModule = function() {
					var IdModule = getIdModule(combomodules.getValue(),
							Organisation);
					// on rÃ©cupÃ©re le caractÃ¨re externe ou pas du
					// module: moduleExterneOuNon
					// alert("Module externe?: " + externeOuNon);
					if (externeOuNon == "non") {
						// getUrlArchi
						proxyBust = new Ext.data.HttpProxy(
								{
									url : '/Aciernet/ListeArchisParModule.jsp?ipRequestCenter='
											+ window.location.hostname
											+ '&idModule=' + IdModule,
									method : 'GET'
								});
						ArchiStore.proxy = proxyBust;
						ArchiStore.load();
						// alert("mod interne : " +
						// '/Aciernet/ListeArchisParModule.jsp?ipRequestCenter='
						// + window.location.hostname + '&idModule=' +
						// IdModule);
					}
					if (externeOuNon == "oui") {
						proxyBust = new Ext.data.HttpProxy({
							url : '/Aciernet/ListeVM.jsp?ipRequestCenter='
									+ window.location.hostname
									+ '&Externe=oui&CleModule=' + IdModule,
							method : 'GET'
						});
						store.proxy = proxyBust;
						store.load();
						// alert("mod externe : " +
						// '/Aciernet/ListeVM.jsp?ipRequestCenter=' +
						// window.location.hostname + '&Externe=oui&CleModule='
						// + IdModule);
					}
					// store.proxy = proxyBust;
					// store.load();
				}
				var onClickArchi = function() {
					var nomModule = combomodules.getValue();
					var nomArchi = comboArchi.getValue();
					if (externeOuNon == "non") {
						contextMenu = new Ext.menu.Menu(
								{
									items : [
											{
												text : 'Modification d\'une VM',
												handler : function() {
													var zone = store.getAt(row)
															.get('NomZone');
													var nomVM = store
															.getAt(row).get(
																	'NomVM');
													var url = findLink("Modification d'une VM")
															+ '&DefaultAffichage_modificationVM.Organisation_liste='
															+ encodeURI(Organisation)
															+ '&DefaultAffichage_modificationVM.Module_choix_gest_orga='
															+ encodeURI(nomModule)
															+ '&DefaultAffichage_modificationVM.choix_archi2='
															+ encodeURI(nomArchi)
															+ '&DefaultAffichage_modificationVM.choix_zone2='
															+ encodeURI(zone)
															+ '&DefaultAffichage_modificationVM.Nom_VM='
															+ encodeURI(nomVM)
															+ '&DefaultAffichage_modificationVM.VM_externe=non'
													;
													parent.GB_showFullScreen(
															'Cloud in a box',
															url);
												}
											},
											{
												text : 'Suppression d\'une VM',
												handler : function() {
													var zone = store.getAt(row)
															.get('NomZone');
													var nomVM = store
															.getAt(row).get(
																	'NomVM');
													var url = findLink("Suppression d'une VM")
															+ '&DefaultAffichage_modificationVM.Organisation_liste='
															+ encodeURI(Organisation)
															+ '&DefaultAffichage_modificationVM.Module_choix_gest_cloud='
															+ encodeURI(nomModule)
															+ '&DefaultAffichage_modificationVM.Choix_archi='
															+ encodeURI(nomArchi)
															+ '&DefaultAffichage_modificationVM.choix_zone='
															+ encodeURI(zone)
															+ '&DefaultAffichage_modificationVM.Nom_VM='
															+ encodeURI(nomVM)
															+ '&DefaultAffichage_modificationVM.VM_externe=non'
													;
													parent.GB_showFullScreen(
															'Cloud in a box',
															url);
												}
											},
											{
												text : 'Sauvegarde d\'une VM',
												handler : function() {
													var url = findLink("Sauvegarde d'une VM");
													parent.GB_showFullScreen(
															'Cloud in a box',
															url);
												}
											},
											{
												text : 'Restauration d\'une VM',
												handler : function() {
													var url = findLink("Restauration d'une VM");
													parent.GB_showFullScreen(
															'Cloud in a box',
															url);
												}
											},
											{
												text : 'Recevoir le mot de passe par mail',
												handler : function() {
													var nomVM = store
															.getAt(row).get(
																	'NomVM');
													var Zone = store.getAt(row)
															.get('NomZone');
													var url = findLink("Envoyer le mot de passe de la VM par mail")
															+ '&DefaultSixChampsTexte.Champ1='
															+ encodeURI(Organisation)
															+ '&DefaultSixChampsTexte.Champ2='
															+ encodeURI(nomModule)
															+ '&DefaultSixChampsTexte.Champ3='
															+ encodeURI(nomArchi)
															+ '&DefaultSixChampsTexte.Champ4='
															+ encodeURI(Zone)
															+ '&DefaultSixChampsTexte.Champ5='
															+ encodeURI(nomVM);
													parent
															.GB_showFullScreen(
																	'Recevoir le mot de passe par mail',
																	url);
												}
											}
									]
								});
					}
					var IdModule = getIdModule(combomodules.getValue(),
							Organisation);
					// function getIdArchi(NomArchi, idModule, NomOrga)
					// alert("avant getIdArchi");
					var IdArchi = getIdArchi(comboArchi.getValue(), IdModule);
					// alert("idMod : " + IdModule + "---idArchi---" + IdArchi);
					proxyBust = new Ext.data.HttpProxy({
						url : '/Aciernet/ListeVM.jsp?ipRequestCenter='
								+ window.location.hostname
								+ '&Externe=non&CleArchi=' + IdArchi,
						method : 'GET'
					});
					store.proxy = proxyBust;
					store.load();
				}
				filterButtonModules.on('click', onClickModule);
				filterButtonArchi.on('click', onClickArchi);
				// ==============================================================
				// The proxy call
				// ==============================================================
				var proxy = new Ext.data.HttpProxy({
					method : 'GET'
				});
				var total = 10;
				// ==============================================================
				// The data store
				// ==============================================================
				var store = new Ext.data.XmlStore({
					autoDestroy : true,
					autoLoad : false,
					storeId : 'myStore',
					proxy : proxy,
					record : 'VM',
					totalProperty : 'total',
					fields : fieldList
				});
				// store.load();
				var toolbar = new Ext.PagingToolbar({
					pageSize : defaultPageSize,
					displayInfo : true,
					store : store,
					emptyMsg : "Rien Ã  afficher"
				});
				// ==============================================================
				// The grid panel to display data
				// ==============================================================
				var contextMenu = new Ext.menu.Menu({
					items : [ {
						text : 'Modification d\'une VM',
						handler : function() {
							var url = findLink("Modification d'une VM")
							parent.GB_showFullScreen('Cloud in a box', url);
							;
						}
					}, {
						text : 'Suppression d\'une VM',
						handler : function() {
							var url = findLink("Suppression d'une VM");
							parent.GB_showFullScreen('Cloud in a box', url);
						}
					}, {
						text : 'Sauvegarde d\'une VM',
						handler : function() {
							var url = findLink("Sauvegarde d'une VM");
							parent.GB_showFullScreen('Cloud in a box', url);
						}
					}, {
						text : 'Restauration d\'une VM',
						handler : function() {
							var url = findLink("Restauration d'une VM");
							parent.GB_showFullScreen('Cloud in a box', url);
						}
					}
					]
				});
				// choix du module et affichage de l'architecture
				var gridVM = new Ext.grid.GridPanel({
					store : store,
					title : 'Liste des VM',
					columns : displayList,
					enableColumnHide : false,
					viewConfig : {
						forceFit : true,
						scrollOffset : 0
					},
					width : "100%",
					autoHeight : true,
					renderTo : '#divName#',
					tbar : [ combomodules, filterButtonModules, '&nbsp;&nbsp;',
							comboArchi, filterButtonArchi ],
					sm : new Ext.grid.RowSelectionModel({
						singleSelect : true
					}),
					bbar : [ '->', toolbar ]
				});
				gridVM.render();
				gridVM.on('rowcontextmenu', function(e, t, o) {
					row = t;
					contextMenu.showAt(o.xy);
					o.stopEvent();
				});
			}
			// nettoyage
			login = null;
			xmlDoc = null;
			xmlhttp = null;
			getUrlUser = null;
		});